﻿using System;
using System.Linq;
using System.Windows.Forms;
using System.Drawing;
using System.IO;

namespace Tecnorama.Yonetici
{
    public partial class frmPersonel : Form
    {
        public frmPersonel()
        {
            InitializeComponent();
        }

        LinqDataContext db = new LinqDataContext();

        private void frmPersonel_Load(object sender, EventArgs e)
        {
            lblpersonelid.Text = "";
            var soru = from x in db.Yetkilers select x;
            foreach (var item in soru)
            {
                cbyetkisi.Items.Add(item.YetkiAdi);
            }
            var sorgu = from x in db.Subelers select x;
            foreach (var item in sorgu)
            {
                cbsubeadi.Items.Add(item.SubeAdi);
            }
            var sorgu2 = from x in db.Personels where x.Yoneticimi == true select x;
            foreach (var item in sorgu2)
            {
                cbamir.Items.Add(item.PersonelAdi + " " + item.PersonelSoyadi);
            }

            txtadi.Focus();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (txtkimlikno.Text == "")
            {
                MessageBox.Show("Lütfen TcKimlik Numarasını Giriniz");
                txtkimlikno.Select();
                return;
            }
            OpenFileDialog fd = new OpenFileDialog();
            fd.Filter = "image files (*.jpg)|*.jpg";
            fd.FileOk += new System.ComponentModel.CancelEventHandler(fd_FileOk);
            fd.ShowDialog();
        }

        private void fd_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
        {
            OpenFileDialog fd = sender as OpenFileDialog;
            File.Copy(fd.FileName, Application.StartupPath + "\\image\\" + txtkimlikno.Text + ".jpg");
            pbpersonelresmi.ImageLocation = fd.FileName;
            pbpersonelresmi.SizeMode = PictureBoxSizeMode.Zoom;
        }

        private void btnkaydet_Click(object sender, EventArgs e)
        {
            bool a = false;
            foreach (Control item in this.Controls)
            {
                foreach (Control item2 in item.Controls)
                {
                    if (item2 is TextBox || item2 is ComboBox)
                    {
                        if (item2.Text == "")
                        {
                            item2.BackColor = Color.PaleVioletRed;
                            a = true;
                        }
                    }

                }
            }
            if (a)
            {
                MessageBox.Show("Lütfen Kırmızı Alanları Doldurunuz...", "Uyarı");
                return;
            }

            var soru = from x in db.Personels select x;
            Personel per = new Personel();
            foreach (var person in soru)
            {
                if (person.PersonelAdi == cbamir.Text.Split(' ')[0] && person.PersonelSoyadi == cbamir.Text.Split(' ')[1])
                {
                    per.RaporID = person.PersonelID;
                }
                else
                {
                    //MessageBox.Show("Yönetici Bulunamadı");
                }
                if (person.TCkimlikNo == txtkimlikno.Text || person.eMail == txtmail.Text)
                {
                    MessageBox.Show(person.PersonelID.ToString() + " Nolu Kayıt İle Çakışma Var\nLütfen Kontrol Ediniz", "Tekrar Eden Kayıt!!!");
                    return;
                }
            }
            per.PersonelAdi = ilkharfbuyuk(txtadi.Text);
            per.PersonelSoyadi = ilkharfbuyuk(txtsoyadi.Text);
            per.TCkimlikNo = txtkimlikno.Text;
            per.TelCep = txtcep.Text;
            per.TelEv = txtev.Text;
            per.Adres = txtadres.Text;
            per.DogumTarihi = dtdogumtarihi.Value;
            per.eMail = txtmail.Text;
            per.IsGirisTarihi = dtIsbaslangıc.Value;
            per.Yoneticimi = chkyonetici.Checked;
            if (cbmedenihal.Text == "Evli")
            {
                per.MedeniHali = true;

            }
            else
            {
                per.MedeniHali = false;
            }
            per.PersonelResmi = Application.StartupPath + "\\image\\" + txtkimlikno.Text + ".jpg";
            var sorgu = (from x in db.Subelers where x.SubeAdi == cbsubeadi.Text select new { x.SubeID }).FirstOrDefault();
            if (sorgu != null)
            {
                per.SubeID = sorgu.SubeID;
            }
            else
            {
                MessageBox.Show("Şube Bulunamadı");
                return;
            }
            var sorgu2 = (from x in db.Yetkilers where x.YetkiAdi == cbyetkisi.Text select new { x.YetkiID }).FirstOrDefault();
            if (sorgu2 != null)
            {
                per.YetkiID = sorgu2.YetkiID;
            }
            else
            {
                MessageBox.Show("Yetki Bulunamadı");
                return;
            }
            per.Sifre = "1234";
            db.Personels.InsertOnSubmit(per);
            db.SubmitChanges();
            lblpersonelid.Text = per.PersonelID.ToString();
            PersonelMaa maas = new PersonelMaa();
            maas.Maas = decimal.Parse(txtmaas.Text);
            maas.PersonelID = per.PersonelID;
            db.PersonelMaas.InsertOnSubmit(maas);
            db.SubmitChanges();
        }

        private void frmPersonel_FormClosed(object sender, FormClosedEventArgs e)
        {
            foreach (Form item in Application.OpenForms["mdiKabuk"].MdiChildren)
            {
                item.Enabled = true;
            }
        }

        private void txtadi_TextChanged(object sender, EventArgs e)
        {
            if (txtsoyadi.Text != "" && txtadi.Text != "")
            {
                string a = txtadi.Text;
                if (txtadi.Text.Split(' ').Length >= 2)
                {
                    a = txtadi.Text.Split(' ')[0].Substring(0, 1);
                    a += txtadi.Text.Split(' ')[1];
                }
                txtmail.Text = (a + "." + txtsoyadi.Text + "@teknoroma.com.tr").ToLower();
            }
        }
        private string ilkharfbuyuk(string msg)
        {
            string a = msg.ToCharArray()[0].ToString().ToUpper();
            a += msg.Substring(1).ToLower();
            return a;
        }
    }
}